草庐IT

git pull --rebase

全部标签

git - 仅对分支的一部分进行 rebase

我有两个分支(和主分支)。Branch2基于Branch1基于master。我提交了Branch1以供审查,它有一些变化,我将其中一些变化重新定位到历史记录中,并将结果merge到master中。现在我需要在master之上对分支2进行rebase,以准备审查/merge。问题是分支2仍然包含分支1的原始提交,它们不再存在,所以git变得困惑。我尝试使用rebase-i删除分支1的原始提交,但分支2的提交并不基于master-before-branch-1。我需要做的是采用分支2,删除一些提交,并在单个操作中仅将剩余的提交rebase到master之上。但我只知道如何分两个不同的步骤来

git - 如何在 git rebase 期间通过哈希识别冲突提交?

当我使用gitrebase遇到merge冲突时,我如何根据提交识别冲突的来源,而不仅仅是文件差异?我已经知道如何在gitrebase--continue之前(基本)使用gitmergetool或gitadd,但有时文件之间的差异是不够的:我想查看提交日志和刚刚未能应用于工作树的提交的差异。我在其他问题中读到,如果我使用gitmerge,gitlog--merge会显示父提交。无论如何,当我遇到冲突并被告知fatal:--mergewithoutMERGE_HEAD?时,我还是尝试了它。我如何识别有问题的提交? 最佳答案 简答如果它说

git - 如何在 git rebase 期间通过哈希识别冲突提交?

当我使用gitrebase遇到merge冲突时,我如何根据提交识别冲突的来源,而不仅仅是文件差异?我已经知道如何在gitrebase--continue之前(基本)使用gitmergetool或gitadd,但有时文件之间的差异是不够的:我想查看提交日志和刚刚未能应用于工作树的提交的差异。我在其他问题中读到,如果我使用gitmerge,gitlog--merge会显示父提交。无论如何,当我遇到冲突并被告知fatal:--mergewithoutMERGE_HEAD?时,我还是尝试了它。我如何识别有问题的提交? 最佳答案 简答如果它说

Git 工作流 : Rebasing Published/Shared Branches

我们的工作团队热情地采用了rebase工作流程,但我们可能会有些得意忘形,这就是这个问题的重点:你是法官。现在使用pull--rebase对我来说是轻而易举的事。但是,我们也有很多人在处理的大型功能分支。我们希望定期引入master上发生的变化。传统智慧会让我们merge,因为它是一个共享分支。然而,在我们对rebase的痴迷中,我们决定对这些分支进行rebase。当然这需要大家的配合。工作流程是这样的:1)rebaser与每个人协调以确保他们都已checkin并推送到功能分支上,然后要求他们在该分支上不再做任何工作,直到他们全部清除为止。2)rebaser将特性分支rebase到ma

Git 工作流 : Rebasing Published/Shared Branches

我们的工作团队热情地采用了rebase工作流程,但我们可能会有些得意忘形,这就是这个问题的重点:你是法官。现在使用pull--rebase对我来说是轻而易举的事。但是,我们也有很多人在处理的大型功能分支。我们希望定期引入master上发生的变化。传统智慧会让我们merge,因为它是一个共享分支。然而,在我们对rebase的痴迷中,我们决定对这些分支进行rebase。当然这需要大家的配合。工作流程是这样的:1)rebaser与每个人协调以确保他们都已checkin并推送到功能分支上,然后要求他们在该分支上不再做任何工作,直到他们全部清除为止。2)rebaser将特性分支rebase到ma

git - `git pull --rebase` 什么时候会让我惹上麻烦?

我知道当我使用gitpull--rebase时,git将重写历史并将我的本地提交移动到我刚从中提取的分支中的所有提交之后。我不明白的是,这怎么会是一件坏事。人们谈论在使用gitpull--rebase时遇到麻烦,您最终可能会得到一个其他人无法pull的分支。但我不明白这是怎么可能的,因为你所做的只是重播你本地的、尚未公开的、在你从中提取的分支之上的提交。那么,问题出在哪里? 最佳答案 如果您只发布(推送)了您的一些提交,这只是一个问题,因为它们将更难merge到已经有这些提交的其他存储库。由于它们的SHA1已更改,Git将尝试在这些

git - `git pull --rebase` 什么时候会让我惹上麻烦?

我知道当我使用gitpull--rebase时,git将重写历史并将我的本地提交移动到我刚从中提取的分支中的所有提交之后。我不明白的是,这怎么会是一件坏事。人们谈论在使用gitpull--rebase时遇到麻烦,您最终可能会得到一个其他人无法pull的分支。但我不明白这是怎么可能的,因为你所做的只是重播你本地的、尚未公开的、在你从中提取的分支之上的提交。那么,问题出在哪里? 最佳答案 如果您只发布(推送)了您的一些提交,这只是一个问题,因为它们将更难merge到已经有这些提交的其他存储库。由于它们的SHA1已更改,Git将尝试在这些

git rebase upstream/master 与 git pull --rebase upstream master

gitrebaseupstream/master和gitpull--rebaseupstreammaster之间有区别吗?如果有,那是什么?远程可以是任何远程,不一定是上游。 最佳答案 gitpull--rebase将fetch(gitfetch)首先,更新upstream/master提交。如果您只是rebase而不先更新upstream/master,您将不会得到相同的结果。我在“masterbranchand'origin/master'havediverged,howto'undiverge'branches'?”中说明了这

git rebase upstream/master 与 git pull --rebase upstream master

gitrebaseupstream/master和gitpull--rebaseupstreammaster之间有区别吗?如果有,那是什么?远程可以是任何远程,不一定是上游。 最佳答案 gitpull--rebase将fetch(gitfetch)首先,更新upstream/master提交。如果您只是rebase而不先更新upstream/master,您将不会得到相同的结果。我在“masterbranchand'origin/master'havediverged,howto'undiverge'branches'?”中说明了这

git rebase --editor=/something/other/than/vim? (为了更容易压扁)

我很乐意使用vim作为我的默认提交编辑器,并且不想更改它。然而,当涉及到rebasing时,我发现自己压缩了数十个提交,我发现使用像Textwrangler这样的交互式编辑器要容易得多(在除顶部提交之外的所有提交中将“pick”替换为“squash”)。有什么方法可以为一次性rebase命令指定备用编辑器吗?我知道在vim中我可以做::%s/pick/squash/但这有它自己的小烦恼。编辑-如评论中所述,您可以通过转到第2行并执行来非常有效地压缩除顶部提交之外的所有提交:,$s/pick/squash/(注意逗号和美元与原来的不同) 最佳答案